package dletc.thread;
/**
 * Thread类中常用方法：
 * 一、Thread.currentThread(): 获取**当前线程**对象 (在那个线程中，就是那个线程的对象)，功能等价于 this
 * 二、获取和修改线程的名字：
 *  	对象.getName(): 获取线程名
 *  	对象.setMame(): 设置线程名
 * 三、插队（阻塞）方法：对象.join()  调用join方法的线程进行插队，当前线程为插入的线程让路 只让一次
 */
public class Demo03 {

	public static void main(String[] args) throws Exception {
		
		// 案例:实现多个线程完成不同的任务，线程1：打印100之内偶数 线程2：打印100之内的奇数

		MyThread3 mt3 = new MyThread3();
		mt3.setName("vip线程");
		mt3.start();

		for (int i = 0; i < 100; i++) {
			System.out.println(Thread.currentThread().getName() + i);
			if( i == 20) mt3.join(); //当主线程 i == 20时 vip线程插队 主线程给vip线程让路
		}

	}

}

class MyThread3 extends Thread{
	@Override
	public void run() {
		try {
			Thread.sleep(500); //确保另一个线程先运行 体验join的 插入
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for(int i = 0 ; i <=1000 ;i++){
	    		System.out.println( Thread.currentThread().getName() + "-----" +i);
	    }
	}
}

